﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Login : System.Web.UI.Page
{
	public string usuario
	{
		get { return Session["usuario"] != null ? Session["usuario"].ToString() : null; }
		set { Session["usuario"] = value; }
	}
	
	protected void Page_Load(object sender, EventArgs e)
	{
		//Me fijo si existe un usuario logueado. Si existe, redirecciono a la pagina de grupos
		if (usuario != null)
			Response.Redirect("GruposIndicadores.aspx");
			
		lblErrorBox.Visible = false;
		//Me fijo si la pagina recibio por parametro algun mensaje para mostrar por pantalla
		if(Request["msg"] != null)
		{
			lblError.Text = Request["msg"];
			lblErrorBox.Visible = true;
		}
		txtUsuario.Focus();
	}
	
	protected void btnLogin_Click(object sender, EventArgs e)
	{
		try
		{
			//Obtengo el usuario y la contraseña ingresados
			string usr = txtUsuario.Text;
			string cont = txtPassword.Text;
			
			//Intento autenticar al usuario
			UsuariosData usuariosData = new UsuariosData(ConfigurationManager.ConnectionStrings["StrConexionServidor"].ConnectionString);
			usuario = usuariosData.AutenticarUsuario(usr, cont);
			
			//Si pude autenticar al usuario, redirijo a la pagina de grupos
			if(usuario != null)
			{
				Session.Timeout = int.Parse(ConfigurationManager.AppSettings["SessionTimeout"]);
				Response.Redirect("GruposIndicadores.aspx");
			}
			else
			{
				//Muestro un mensaje de error en caso de no poder autenticar al usuario
				lblError.Text = "Usuario o Contraseña incorrecta";
				lblErrorBox.Visible = true;
			}
		}
		catch(Exception ex)
		{
            Logger.log(ConfigurationManager.AppSettings["PathToLog"], ex.Message + "\n" + ex.StackTrace);
			lblError.Text = "Ocurrio un error al intentar autenticar el usuario";
			lblErrorBox.Visible = true;
		}
	}
}
